Present day print mechanisms, such as ink jet and laser-based printers, have the capability of producing text outputs exhibiting many different font presentations. Character fonts are provided to the print mechanisms via read only memories which store the font data in the form of character outlines. In the case of printers employed for Latin-based languages, font sizes are such as to enable an entire font to be accessed from ROM and to be "rasterized" into a bit map state, ready for printing when called upon by the print mechanism. In prior art printers, tables of pointers are constructed which point to bit map data or outline font data, as the case may be. A table is created for every orientation, point size and data type (i.e. bit map or outline) for every font that has character data in use. Because Latin character codes range between 0 and 255, the table method enables a high performance access technique with a fairly low memory cost for the pointer tables.
By contrast, fonts employed for Asian character sets encompass tens of thousands of different characters. The provision of tables of pointers to the font data becomes impractical due to the large amount of memory space which is consumed by the tables (not even considering the memory space required for the font data). Further, because of the large quantity of required Asian characters, the technique of pre-rasterizing the outline font data and maintaining it in bit map form results in extremely large memory sizes. Thus, while the immediate availability of pre-rasterized Asian font data enables high speed printer operation, the cost of achieving such operation is concomitantly high.
Accordingly, it is an object of this invention to provide an improved method and apparatus for handling of printer font data.
It is another object of this invention to provide a memory management technique which enables high usage font data to be available in the form of bit map data to the printer mechanism.
It is yet another object of this invention to control which font data is present in bit map form in a cache memory, based upon recent usage.